package com.dragon.app.um.service;

import java.util.Map;

import com.dragon.app.commons.dto.SendSMSDTO;
import com.dragon.app.um.vo.JsonResult;
import com.fintech.common.vo.FintechResult;
import com.fintech.user.entity.RealNameAuthAndFaceCompare;
import com.fintech.user.entity.RealNameAuthentication;
import com.fintech.user.entity.User;
/**
 * 
 * @author liuxy
 *
 */
public interface ClientUserService {
	
	public JsonResult<Boolean> validAccountRegister(User user);
	
	/**
	 * 登录
	 * @param user
	 * @param deviceSwitch
	 * @return
	 */
	public JsonResult<User> login(User user, Map<String, String> headers,String ipAddress);
	
	public JsonResult<User> loginV2(User user, Map<String, String> headers,String ipAddress);
	
	public JsonResult<String> addRealNameAuthentication(String idFintechUmUser,String accessToken, RealNameAuthentication realNameAuthentication);
	
	public JsonResult<User> registerClient(User user,Map<String, String> headers,String channelName);
	
	public JsonResult<User> exchangPwd(User user);
	
	/**
	 * 有盾实名认证和人脸视别调用计费统计（只有状态码为000000,500006,500007,500014才统计）
	 * @param map
	 * @param user
	 * @return
	 */
	public FintechResult addYdCallTimes(Map<String, String> map, User user);

	/**
	 * 有盾实名认证和人脸视别入库（只有全部通过后才调用该方法）
	 * 
	 * @param realNameAuthAndFaceCompare
	 * @param user 
	 * @return
	 */
	public FintechResult addRealNameAuthAndFaceCompare(RealNameAuthAndFaceCompare realNameAuthAndFaceCompare, User user);
	
	public boolean verifySlideCode(Map<String, String> param);
	
	public boolean verifySlideCode(SendSMSDTO param);
	
	/**
	 * 是否禁止自然流量申请
	 * @param channelCode
	 * @return
	 */
	public Map<String, String> isProhibitZrllApply(Integer userId, String channelCode);
}
